home *** CD-ROM | disk | FTP | other *** search
- ExecBase EQU 4
- OpenLibrary EQU -552
- AllocMem EQU -198
- FreeMem EQU -210
-
- * Graphics
- InitBitmap EQU -390
- InitRastPort EQU -198
- SetAPen EQU -342
- Move EQU -240
- Text EQU -60
- ScrollRaster EQU -396
-
- Bitmap_Size EQU 50000
-
- OPT P+ Relocatable Code
-
- BSR Open_Libraries
- BSR Get_Memory
- BSR Clear_Bitmap
- BSR Init_Screen
- BSR Setup_Copper
-
- BSR Init_Scroller
- BSR Put_Text_On_Screen
-
- Wait_Mouse_Press
- CMPI.B #0,$DFF006
- BNE Wait_Mouse_Press
- BSR Move_BackGround
- BSR Move_ForeGround
- BSR Move_ForeGround
- BSR Pulse_Colours
- BSR Fade_Prompt
- BSR Fade_Prompt
- BSR Scroll_Msg
- LEA Scroll_Delay(PC),A0
- SUBQ.B #1,(A0)
- BNE Not_Text_Time
- BSR Put_Char_On
-
- Not_Text_Time
- BSR Pause_Routine
- BTST #6,$BFE001
- BNE Wait_Mouse_Press
- Finish
- BSR Reset_Copper
- BSR Free_Memory
- CLR.L D0
- RTS
-
- Open_Libraries:
- MOVE.L ExecBase,A6
- LEA GfxName(PC),A1
- CLR.L D0
- JSR OpenLibrary(A6)
- LEA GfxBase(PC),A1
- MOVE.L D0,(A1)
- RTS
-
- Get_Memory:
- * Memory For Copper List
- MOVE.L #Copper_Size,D0
- MOVEQ.L #3,D1
- JSR AllocMem(A6)
- LEA Copper_Mem(PC),A0
- MOVE.L D0,(A0)
- * Memory For Bitmap
- MOVE.L #Bitmap_Size,D0
- MOVE.L #3,D1
- JSR AllocMem(A6)
- LEA Bitmap_Mem(PC),A0
- MOVE.L D0,(A0)
- RTS
-
- Free_Memory:
- MOVE.L ExecBase,A6
- MOVE.L Copper_Mem(PC),A1
- MOVE.L #Copper_Size,D0
- JSR FreeMem(A6)
- MOVE.L Bitmap_Mem(PC),A1
- MOVE.L #Bitmap_Size,D0
- JSR FreeMem(A6)
- RTS
-
- Clear_Bitmap:
- MOVE.L Bitmap_Mem(PC),A0
- MOVE.L A0,D0
- MOVE.L #3300,D1
- Clr_Bmap
- CLR.L (A0)+
- SUBQ.L #1,D1
- BNE Clr_Bmap
- Set_Bitmap_Address
- LEA Bitmap_Lo(PC),A1
- MOVE.W D0,(A1)
- SWAP D0
- LEA Bitmap_Hi(PC),A1
- MOVE.W D0,(A1)
- RTS
-
- Init_Screen:
- MOVE.L GfxBase(PC),A6
- LEA Bitmap_Struct(PC),A0
- MOVE.L #1,D0 Depth
- MOVE.L #$300,D1 Width
- MOVE.L #$C0,D2 Height
- JSR InitBitmap(A6)
- LEA Bitmap_Struct(PC),A0
- MOVE.L Bitmap_Mem(PC),8(A0)
- LEA RastPort_Struct(PC),A1
- JSR InitRastPort(A6)
- LEA Bitmap_Struct(PC),A0
- LEA RastPort_Struct(PC),A1
- MOVE.L A0,4(A1)
- RTS
-
- Setup_Copper:
- MOVE.L Copper_Mem(PC),A0
- LEA My_Copper_List(PC),A1
- Move_Copper_List
- MOVE.L (A1),(A0)+
- CMP.L #$FFFFFFFE,(A1)+
- BNE Move_Copper_List
- MOVE.W #$0080,$DFF096 Stop Copper Int.
- MOVE.L GfxBase(PC),A1
- LEA Old_Copper_Base(PC),A0
- MOVE.L $32(A1),(A0)
- MOVE.L Copper_Mem(PC),$32(A1)
- MOVE.W #$8080,$DFF096 Start Copper Int.
- RTS
-
- Reset_Copper:
- MOVE.W #$0080,$DFF096 Stop Copper Int.
- MOVE.L GfxBase(PC),A0
- MOVE.L Old_Copper_Base(PC),$32(A0)
- MOVE.W #$8080,$DFF096 Start Copper Int.
- RTS
-
- Move_BackGround
- MOVE.L Copper_Mem(PC),A0
- ADD.L #Wrap_Start-My_Copper_List,A0
- MOVE.L A0,A1
- MOVE.L #58,D0 Num. Cop Lines
- BackGround_Line
- MOVE.W 18(A0),6(A0)
- ADD.L #12,A0
- DBF D0,BackGround_Line
- MOVE.W 6(A1),6(A0)
- RTS
-
- Move_ForeGround
- MOVE.L Copper_Mem(PC),A0
- ADD.L #Wrap_End-My_Copper_List,A0
- MOVE.L A0,A1
- MOVE.L #58,D0
- ForeGround_Line
- MOVE.W 10(A0),22(A0)
- SUB.L #12,A0
- DBF D0,ForeGround_Line
- MOVE.W 10(A1),22(A0)
- RTS
-
- Pulse_Colours
- LEA Red(PC),A0
- BSR Pulse_Colour
- LEA Green(PC),A0
- BSR Pulse_Colour
- RTS
-
- Pulse_Colour
- TST.B 1(A0)
- BEQ Inc_Red
- SUBQ.B #1,(A0)
- CMPI.B #0,(A0)
- BNE Pulse_Exit
- NOT.B 1(A0)
- RTS
- Inc_Red ADDQ.B #1,(A0)
- CMPI.B #14,(A0)
- BNE Pulse_Exit
- NOT.B 1(A0)
- Pulse_Exit
- RTS
-
- Fade_Prompt
- MOVE.L Copper_Mem(PC),A0
- ADD.L #Bot_Col-My_Copper_List,A0
- CLR.L D1
- CLR.L D0
- MOVE.B Red(PC),D0
- LSL.W #8,D0
- CLR.L D1
- MOVE.B Green(PC),D1
- LSL.W #4,D1
- ADD.L D1,D0
- CLR.L D1
- MOVE.B Blue(PC),D1
- ADD.L D1,D0
- MOVE.W D0,(A0)
- RTS
-
-
- Pause_Routine
- RTS
-
- MOVEM.L D0,-(SP)
- MOVE.L #200,D0
- Pause_Loop
- SUBQ.L #1,D0
- BNE Pause_Loop
- MOVEM.L (SP)+,D0
- RTS
-
- Scroll_Msg
- LEA RastPort_Struct(PC),A1
- MOVEQ.L #2,D0 DX
- MOVEQ.L #0,D1 DY
- MOVEQ.L #0,D2 XMIN
- MOVE.L #73,D3 YMIN
- MOVE.L #409,D4 XMAX
- MOVE.L #85,D5 YMAX
- MOVE.L GfxBase(PC),A6
- Wait_Line
- CMPI.B #140,$DFF006
- BNE.S Wait_Line
- JSR ScrollRaster(A6)
- RTS
-
- Put_Char_On
- MOVE.B #4,(A0) Reset delay counter
- LEA RastPort_Struct(PC),A1
- MOVE.L #390,D0
- MOVE.L #80,D1
- JSR Move(A6)
- MOVE.L Scroll_Pointer(PC),A0
- MOVEQ.L #1,D0
- JSR Text(A6)
- LEA Scroll_Pointer(PC),A0
- ADDQ.L #1,(A0)
- MOVE.L (A0),A0
- CMPI.B #0,(A0)
- BNE Not_Wrap
- Init_Scroller
- LEA Scroll_Message(PC),A0
- LEA Scroll_Pointer(PC),A1
- MOVE.L A0,(A1)
- Not_Wrap
- RTS
-
- GfxName DC.B 'graphics.library',0
- EVEN
-
- Put_Text_On_Screen
- MOVE.L GfxBase(PC),A6
- LEA RastPort_Struct(PC),A1
- MOVEQ.L #1,D0 Pen
- JSR SetAPen(A6)
- MOVE.L #180,D0
- MOVEQ.L #20,D1
- JSR Move(A6)
- LEA RastPort_Struct(PC),A1
- MOVE.L #60,D0
- MOVE.L #120,D1
- JSR Move(A6)
- LEA Message_4(PC),A0
- MOVEQ.L #Message_4_Size,D0
- JSR Text(A6)
- RTS
-
- My_Copper_List
- DC.L $01001200,$01020000,$01080000,$010A0000
- DC.L $00920020,$009400D8,$008E1C00,$009030FF
- DC.L $01040024
- DC.W $00E0
- Bitmap_Hi
- DC.W $0007
- DC.W $00E2
- Bitmap_Lo
- DC.W $0870
- DC.L $01800000,$01820FFF
-
- Wrap_Start
- DC.L $3401FFFE,$01800000,$01820000
- DC.L $3501FFFE,$01800001,$01820100
- DC.L $3601FFFE,$01800002,$01820200
- DC.L $3701FFFE,$01800003,$01820300
- DC.L $3801FFFE,$01800004,$01820400
- DC.L $3901FFFE,$01800005,$01820500
- DC.L $3A01FFFE,$01800006,$01820600
- DC.L $3B01FFFE,$01800007,$01820700
- DC.L $3C01FFFE,$01800008,$01820800
- DC.L $3D01FFFE,$01800009,$01820900
- DC.L $3E01FFFE,$0180000A,$01820A00
- DC.L $3F01FFFE,$0180000B,$01820B00
- DC.L $4001FFFE,$0180000C,$01820C00
- DC.L $4101FFFE,$0180000D,$01820D00
- DC.L $4201FFFE,$0180000E,$01820E00
- DC.L $4301FFFE,$0180000F,$01820F00
- DC.L $4401FFFE,$0180001F,$01820F10
- DC.L $4501FFFE,$0180002F,$01820F20
- DC.L $4601FFFE,$0180003F,$01820F30
- DC.L $4701FFFE,$0180004F,$01820F40
- DC.L $4801FFFE,$0180005F,$01820F50
- DC.L $4901FFFE,$0180006F,$01820F60
- DC.L $4A01FFFE,$0180007F,$01820F70
- DC.L $4B01FFFE,$0180008F,$01820F80
- DC.L $4C01FFFE,$0180009F,$01820F90
- DC.L $4D01FFFE,$018000AF,$01820FA0
- DC.L $4E01FFFE,$018000BF,$01820FB0
- DC.L $4F01FFFE,$018000CF,$01820FC0
- DC.L $5001FFFE,$018000DF,$01820FD0
- DC.L $5101FFFE,$018000EF,$01820FE0
- DC.L $5201FFFE,$018000FF,$01820FF0
- DC.L $5301FFFE,$018000FE,$01820FE0
- DC.L $5401FFFE,$018000FD,$01820FD0
- DC.L $5501FFFE,$018000FC,$01820FC0
- DC.L $5601FFFE,$018000FB,$01820FB0
- DC.L $5701FFFE,$018000FA,$01820FA0
- DC.L $5801FFFE,$018000F9,$01820F90
- DC.L $5901FFFE,$018000F8,$01820F80
- DC.L $5A01FFFE,$018000F7,$01820F70
- DC.L $5B01FFFE,$018000F6,$01820F60
- DC.L $5C01FFFE,$018000F5,$01820F50
- DC.L $5D01FFFE,$018000F4,$01820F40
- DC.L $5E01FFFE,$018000F3,$01820F30
- DC.L $5F01FFFE,$018000F2,$01820F20
- DC.L $6001FFFE,$018000F1,$01820F10
- DC.L $6101FFFE,$018000F0,$01820F00
- DC.L $6201FFFE,$018000E0,$01820E00
- DC.L $6301FFFE,$018000D0,$01820D00
- DC.L $6401FFFE,$018000C0,$01820C00
- DC.L $6501FFFE,$018000B0,$01820B00
- DC.L $6601FFFE,$018000A0,$01820A00
- DC.L $6701FFFE,$01800090,$01820900
- DC.L $6801FFFE,$01800080,$01820800
- DC.L $6901FFFE,$01800070,$01820700
- DC.L $6A01FFFE,$01800060,$01820600
- DC.L $6B01FFFE,$01800050,$01820500
- DC.L $6C01FFFE,$01800040,$01820400
- DC.L $6D01FFFE,$01800030,$01820300
- DC.L $6E01FFFE,$01800020,$01820200
- DC.L $6F01FFFE,$01800010,$01820100
- Wrap_End
- DC.L $7001FFFE,$01800000,$01820000
- DC.L $7101FFFE,$01800000,$01820000
- DC.L $7201FFFE,$01820FFF,$01800000
- DC.W $D001,$FFFE,$0182
- Bot_Col DC.W $0333
- DC.L $FFFFFFFE
- Copper_Size EQU *-My_Copper_List
-
- Message DC.B 'MATRIX'
- Message_Size EQU *-Message
- EVEN
- Message_2 DC.B 'PRESENTS'
- Message_2_Size EQU *-Message_2
- EVEN
- Message_3 DC.B 'A GOOD DEMO!'
- Message_3_Size EQU *-Message_3
- EVEN
- Message_4 DC.B 'Press Left Button To Continue'
- Message_4_Size EQU *-Message_4
- EVEN
- Scroll_Pointer DC.L 0
- Scroll_Delay DC.B 50
- Scroll_Message
- DC.B 'HI FROM MATRIX , JUST A SMALL DEMO....'
-
- DC.B 0
- GfxBase DC.L 0
- Copper_Mem DC.L 0
- Bitmap_Mem DC.L 0
- Old_Copper_Base DC.L 0
- Red DC.B 10,0
- Green DC.B 10,0
- Blue DC.B 10,0
- Bitmap_Struct DS.L 30
- RastPort_Struct DS.L 30
-
-